Domain Name Systems (commonly referred to as “DNS”) provide a key service on a network, such as the Internet, in translating text-descriptive resource names (that reference network resources) into actual network addresses that usually comprise a series of digits. For example, a computer user may know of an electronic marketplace site on the Internet by the name of “MyHost.com.” However, that user will not likely be aware that the Internet address “MyHost.com.” is actually (by way of example only)<192.28.1.100>. As is well appreciated, for most people it is usually easier to remember a text-descriptive name, e.g., “MyHost.com,” than an actual address, e.g., a series of numbers that have no contextual meaning to a user. The DNS hosts translate the text-descriptive resource name into a corresponding network address for the computer user. DNS hosts have, at their disposal, a table of resource names and corresponding network addresses.
Those skilled in the art will appreciate that users generally do not communicate directly with a DNS host system. Indeed, most users are unaware of communications with a DNS host system. Instead, DNS resolution takes place transparently at the direction of client-applications such as Web browsers or other network-based applications on a client device. More particularly, when a user makes a request for a network resource via a resource name, such as a universal resource locator, or URL, the application with which the user makes the request forwards that request to a DNS system for resolution. FIG. 1A is a pictorial diagram of an illustrative network environment 100 showing various events occurring when a computing device 102 (as operated/directed by a user, not shown) makes a network request for a network resource, such as information from a network site 106. More particularly, by way of example it is assumed that the user requested information from network site 106, and that the network site is known to the user as “www.MyHost.com”.
When the request is made by the user via the resource name 103, “www.MyHost.com,” rather than a network address, the application (not shown) on the computing device transparently requests a name resolution for the resource name from a DNS host 104, as illustrated by arrow 1. The DNS host 110 resolves the resource name 103 to a network address 105 according to information it stores (or obtains) for mapping resource names to corresponding network addresses. Upon resolution, the network address 105 is returned to the requester application, as indicated by arrow 2. Once the application has the network address, the network request is directed over the network 108 to the network site 106, as indicated by arrow 3.
When a particular entity, such as “MyHost.com”, is associated with a single network address, such as suggested in FIG. 1A, DNS resolution (i.e., translating the resource name into a network address) is straightforward. However, many companies and organizations (as well as other types of entities) often maintain multiple network sites, each of which correspond to a unique network address while, desirably, each is addressable using a single resource name. Current DNS systems handle this one-to-many mapping of resource name to network address translation in one of two different ways: (1) according to location (i.e., mapping the resource name to the host site's network address closest to the requesting computer); or (2) balancing network traffic using techniques such as round-robin site selection (i.e., iterating through the various host site's network addresses on a per request basis) or load-balancing selection (i.e., selecting the host's least busy site according to current network traffic). FIG. 1B is a pictorial diagram of an illustrative network environment 150 showing various events occurring when a computing device 152 (as operated by a user, not shown) makes a network request for a network resource, such as information from a host system, as identified by resource name 155 “www.MyHost.com,” that has multiple actual network sites, such as sites 156 and 158, on a network 108.
As suggested above, when a user requests information for a network resource using a text-descriptive resource name, the application (not shown) on the computing device transparently requests a name resolution for the resource name 153 from a DNS host 104, as illustrated by arrow 1. The DNS host 110 resolves the resource name 153 to a network address 155 from a plurality of network addresses, according to information it stores (or obtains) for mapping resource names to corresponding network addresses. The DNS host 160 selects network site 156 over network site 158 according to one of the options discussed above (round-robin selection or closest in proximity). Upon resolution, the network address 155 is returned to the requester application, as indicated by arrow 2. Once the application has the network address, the network request is directed over the network 108 to the selected network site 156 corresponding to the requested resource name, as indicated by arrow 3.
Unfortunately, even though current DNS hosts may handle the one-to-many “resource name to network address” translations, the current translation rules implemented by the DNS hosts (as set forth above) are static in nature and do not accommodate the flexibility and dynamic configurability that would be highly useful and desirable in today's marketplace.